ソフトウェアアーキテクチャの基礎 ―― エンジニアリングに基づく体系的アプローチ
https://m.media-amazon.com/images/I/51d1HhG4tzL._SX389_BO1,204,203,200_.jpg
はじめに : 公理を疑う
ソフトウェア開発のエコシステムは動的な平衡状態 : 均衡が保たれつつ、長期的には動的
1 章 イントロダクション
プロセスに関する問題がソフトウェアアーキテクチャの領域に入ってきている (プロセスはアーキテクチャの多くの面に影響)
ソフトウェア開発における予測や見積りの難しさは、未知の未知に起因 従来は運用を外部に委託していた会社が多く、アーキテクトが運用に対して防御的になっていた
運用上の能力をアーキテクチャ内部で扱えるように設計し、結果として複雑なアーキテクチャになっていた
近年は、アーキテクチャを運用と連携させ、設計を単純にし、運用メンバーに最適な対応を任せるように
ソフトウェアアーキテクチャの法則
ソフトウェアアーキテクチャはトレードオフが全て
「どうやって」 よりも 「なぜ」 の方がずっと重要
I 部 基礎
2 章 アーキテクチャ思考
3 章 モジュール性
4 章 アーキテクチャ特性
アーキテクチャをできるだけイテレーティブに設計すべき
5 章 アーキテクチャ特性を明らかにする
アーキテクチャ特性を明らかにするのは、アーキテクチャ設計や既存アーキテクチャの正当性の判断のための最初の一歩
アーキテクチャ特性を明らかにするには、ドメインの関心を翻訳できる必要
6 章 アーキテクチャ特性の計測と統制
7 章 アーキテクチャ特性のスコープ
8 章 コンポーネントベース思考
アーキテクトは、アーキテクチャを構成するコンポーネントを定義し、改良し、管理、統制する コンポーネントは、アーキテクトが関わるソフトウェアシステム構成要素の中で (例外を除き) 最も小さいもの
II 部 アーキテクチャスタイル
9 章 基礎
10 章 ~ 17 章
各アーキテクチャスタイルの説明
18 章 適切なアーキテクチャスタイルを選ぶ
III 部 テクニックとソフトスキル
19 章 アーキテクチャ決定
20 章 アーキテクチャ上のリスクを分析する
21 章 アーキテクチャの図解やプレゼンテーション
文書とは違い、発表側が時間をコントロールする
2 つの情報チャネルがある (スライドと話者) ので、それらをうまく使う
22 章 効果的なチームにする
アーキテクトは、アーキテクチャを実装する際の制約 (= 箱) を作る
境界がきついとフラストレーションがたまり、ゆるいと混乱を招く
23 章 交渉とリーダーシップのスキル
アーキテクトは多くの人から異議を唱えられる
開発チームからも、他のアーキテクトからも、ステークホルダーからも
常に正当な理由を示すこと
24 章 キャリアパスを開く